The present disclosure relates to testing computer software applications in general, and more particularly to detecting error states when interacting with web applications.
So-called “web” applications typically include interrelated Hypertext Markup Language (HTML)-encoded web pages that are hosted by a computer server for access by one or more client computers via a computer network, such as the Internet. When testing web applications, dynamic analysis, or “black-box,” tools typically employ “crawling” techniques to navigate to the various web pages of a web application in order to expose its various interfaces for testing. Such techniques typically require a degree of interaction with the web pages as well. For example, to test a banking application properly, a dynamic analysis tool would typically have to log in with valid credentials and provide input to one or more transaction screens for each of the banking operations.
The effectiveness of such dynamic analysis tools depends on their ability to uncover an application's interfaces, which in turn depends on their ability to navigate from one web page to another. Thus, for example, if a dynamic analysis tool navigates to a web page and encounters an error state, and the error state prevents the dynamic analysis tool from navigating to another web page and uncovering and testing its interfaces, this may result in a partial analysis, giving the tester the false impression that the application is safer and/or better than it really is. This is particularly problematic if the dynamic analysis tool is unable to determine that such an error state has been encountered.